// pages/test/index.js
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    _id: '',
    name: '',
    age: '',
    userList: []
  },
  //云函数删除用户数据
  delCloud(e) {
    wx.showLoading({
      title: '',
    })
    const { id } = e.currentTarget.dataset
    wx.cloud.callFunction({
      name: 'delRecord',
      data: {
        id,
      }
    }).then(res => {
      wx.showToast({
        title: '删除成功',
      })
    }).catch(err => {
      wx.showToast({
        title: '删除失败',
        icon: 'error'
      })
    })
    wx.hideLoading()
  },
  //云函数修改用户数据
  updateCloud() {
    wx.showLoading({
      title: '',
    })
    const { _id, name, age } = this.data
    wx.cloud.callFunction({
      name: 'updateRecord',
      data: {
        _id,
        name,
        age
      }
    }).then(res => {
      wx.showToast({
        title: '修改成功',
      })
    }).catch(err => {
      wx.showToast({
        title: _id + '修改失败',
        icon: 'error'
      })
    })
    this.setData({
      _id: '',
      name: '',
      age: ''
    })
    wx.hideLoading()
  },
  //云函数添加用户数据
  addCloud() {
    const { name, age } = this.data
    wx.showLoading({
      title: '',
    })
    wx.cloud.callFunction({
      name: 'addRecord',
      data: {
        name,
        age
      }
    }).then(res => {
      wx.showToast({
        title: '添加成功',
      })
    }).catch(err => {
      wx.showToast({
        title: '添加失败',
        icon: 'error'
      })
    })
    wx.hideLoading()
  },
  //保存更新
  saveMini() {
    wx.showLoading({
      title: '',
    })
    const { _id, name, age } = this.data
    db.collection('test').doc(_id).update({
      data: {
        name,
        age
      }
    }).then(res => {
      this.getUserRecord()
      wx.showToast({
        title: '修改成功',
      })
    }).catch(err => {
      console.log(err)
      wx.showToast({
        title: '修改失败',
        icon: 'err'
      })
    })
    this.setData({
      _id: '',
      name: '',
      age: ''
    })
    wx.hideLoading()
  },
  //回显更新用户数据
  updateMini(e) {
    const { index } = e.currentTarget.dataset
    const record = this.data.userList[index]
    console.log(record)
    this.setData({
      _id: record._id,
      name: record.name,
      age: record.age
    })
  },
  //云端获取用户数据
  getRecordCloud() {
    wx.showLoading({
      title: '',
    })
    wx.cloud.callFunction({
      name: 'getRecord'
    }).then(res => {
      console.log(res)
      this.setData({
        userList: res.result.data
      })
    }).catch(err => {
      console.log(err)
    })
    wx.hideLoading()
  },
  //删除用户数据
  delMini(e) {
    console.log(e)
    wx.showLoading({
      title: '',
    })
    const { id } = e.currentTarget.dataset
    console.log(id)
    db.collection('test').doc(id).remove()
      .then(res => {
        this.getUserRecord()
        wx.showToast({
          title: '删除成功',
        })
      }).catch(err => {
        console.log(err)
        wx.showToast({
          title: '删除失败',
          icon: 'err'
        })
      })
    wx.hideLoading()
  },
  //读取用户数据
  getUserRecord() {
    wx.showLoading({
      title: '加载中',
    })
    db.collection('test').get()
      .then(res => {
        console.log(res)
        this.setData({
          userList: res.data
        })
        wx.hideLoading({
          success: (res) => { },
        })
      })
  },
  //获取输入内容
  getInput(e) {
    // console.log(e)
    const { index } = e.currentTarget.dataset
    const { value } = e.detail
    switch (index) {
      case 'name': this.setData({ name: value }); break;
      case 'age': this.setData({ age: value }); break;
    }
  },
  //添加用户数据
  addUserInfo() {
    const { name, age } = this.data
    if (name == '' || age == '') {
      wx.showToast({
        title: '添加失败 null',
        icon: 'error'
      })
      return
    }
    db.collection('test').add({
      data: {
        name,
        age
      }
    }).then(res => {
      wx.showToast({
        title: '保存成功',
      })
      this.getUserRecord()
    }).catch(err => {
      console.log(err)
      wx.showToast({
        title: '添加失败 网络错误',
      })
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getRecordCloud()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})